The complexity of integrated circuits (ICs) being designed nowadays is continuously increasing and has resulted in complete system-on-chip (SoC) solutions. Even more, the complexity of such integrated systems is exploding thanks to advances in process fabrication. The limiting factor is now the ability to design, manage and verify such systems rather than the ability to fabricate them.
The typical design process begins with a software program that describes the behavior or functionality of a circuit. This software program is written in a hardware description language (HDL) that defines a behavior to be performed with limited implementation details. Logic synthesis tools convert the HDL program into a gate netlist description. The RTL description is used to verify functionality and ultimately generate a netlist that includes a list of components in the circuit and the interconnections between the components. This netlist is used to create the physical integrated circuit.
As SoC's are becoming larger, the only way to efficiently design such dense SoC's, both from the design complexity and time-to-market aspects, is by embedding Intellectual Property (IP) cores. Standards for such cores are currently evolving. Ideally, they should be reusable, pre-characterized and pre-verified. But it often desirable to change the design to create the next generation. For example, as fabrication technology changes, it is desirable to convert or migrate the design to the new process parameters. For example, an IP core may be designed and tested for 90 nm technology, but it is desirable to convert the IP core to a new process of 60 nm technology. Or it may be desirable to update the design and incorporate changes in order to create the next generation design.
In order to test and explore such changes in the design, simulation must be performed, which is very time consuming. A few seconds of real-time simulation can take weeks or even months. If the simulation results are not desirable, then the design process must start over again by changing the high-level code and re-simulating.
Because of such delays in simulation, designers are beginning to move the design process to a higher level of abstraction (meaning less focus on design details). At the higher level of abstraction, design exploration can be performed to evaluate which performance and power consumption can be achieved, which parts to use, etc. The preferable higher level of abstraction is called Transaction Level Modeling (TLM), which refers to the evolving design and verification space called Electronic System Level (ESL) with methodologies that begin at a higher level of abstraction than the current mainstream Register Transfer Level (RTL). The main ESL design language SystemC, is driven from C/C++ rather than from hardware languages like Verilog and VHDL.
The challenge is how to rewrite or convert existing models and code at the register transfer level to models and code at the electronic system level. There are some tools available that can make such a conversion, such as VTOC available from Tenison Corporation, but these tools do a simple code conversion without changing the level of abstraction. Thus, for example, having the same level of abstraction, including the same level of design details, means that the verification and simulation are just as slow.
A simple example is if an engineer wants to use an existing circuit, but increase the memory size. There are no guarantees that making such an update will work. For example, increased memory size may drain the battery too quickly rendering the circuit unmarketable. Using current tools, the designer must either physically implement the circuit to see if it works or modify the RTL code and simulate the design. Such simulation may take weeks or even months, and if the modification does not work, the process must be started over again.
Thus, it is desirable to convert an existing design from a lower level of code, such as RTL, to a higher level, such as ESL, while changing the abstraction level of the design in order to gain the benefits of having the code at the higher level.